package cn.net.sinodata.system.domain.bo;

import cn.net.sinodata.system.domain.PmAccBankDeadline;
import cn.net.sinodata.common.mybatis.core.domain.BaseEntity;
import cn.net.sinodata.common.core.validate.AddGroup;
import cn.net.sinodata.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 基础账户行截止时间管理业务对象 pm_acc_bank_deadline
 *
 * @author yinliangyun
 * @date 2025-10-30
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = PmAccBankDeadline.class, reverseConvertGenerate = false)
public class PmAccBankDeadlineBo extends BaseEntity {

    /**
     * 主键
     */
    @NotBlank(message = "主键不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 账户行号
     */
    @NotBlank(message = "账户行号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String accountBankNo;

    /**
     * 账户行名
     */
    @NotBlank(message = "账户行名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String accountBankName;

    /**
     * 是否默认账户行（Y-是 N-否）
     */
    @NotBlank(message = "是否默认账户行（Y-是 N-否）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isDefault;

    /**
     * 币种
     */
    @NotBlank(message = "币种不能为空", groups = { AddGroup.class, EditGroup.class })
    private String currencyType;

    /**
     * 清算方式
     */
    @NotBlank(message = "清算方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String clearingMode;

    /**
     * 是否夏令时（Y-是 N-否）
     */
    @NotBlank(message = "是否夏令时（Y-是 N-否）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isSummerTime;

    /**
     * 夏令时开始时间
     */
    private Date stimeStarttime;

    /**
     * 夏令时截止时间
     */
    private Date stimeEndline;

    /**
     * 非夏令时截止时间点
     */
    private Date nostimeDeadline;

    /**
     * 夏令时截止时间点
     */
    private Date stimeDeadline;

}
